home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 1992 August / info-mac-1992.iso / Language (lang) / GCC / GCC 1.37.1r7(Min) / Documents / BUGS next >
Encoding:
Text File  |  1990-11-27  |  2.1 KB  |  57 lines  |  [TEXT/MPS ]

  1. KNOWN BUGS AND OTHER PROBLEMS WITH MPW GCC
  2.  
  3. Some sorts of conversions (such as double <-> extended) cause a crash in
  4. the reload phase.  Seems to be more common with optimization+SANE+extended
  5. floats, but has been observed in other situations also.
  6. Example (OK with -mc68881, fails without):
  7.     int n, i, arr[10];
  8.     float c, theta, tang;
  9.     test() {
  10.       for (i = 0; i < n; i++) {
  11.         tang = atan2 (cos (i * 2.0), sin (i * 2.0));
  12.         arr[i] = 50 * c * sin (tang);  }}
  13. Workaround: temp variables and multiple assignment statements seem to help.
  14.  
  15. #<symbol> sometimes appears as an operand (as when pointer arithmetic is being
  16. done on the address of an array), causing MPW Asm to report an error.
  17. Example:
  18.     extern char gline[100], *fooline;
  19.     short foo() { return fooline - gline; }
  20. Workaround: assign address to a temp pointer, then do operations on value of ptr.
  21.  
  22. -b option causes a failure when initializing some arrays of strings.
  23. Example: GCC compiling wordlist in c-parse.tab.c.
  24. Workaround: don't use -b when self-compiling.
  25.  
  26. Casted objects passed by address to pascal functions don't get converted.
  27.  
  28. Pointer to a function does not have the right sort of value
  29. Example:
  30.     void f();
  31.     void (*fp)() = f;
  32.     foo() { return *fp == f; }  /* returns 0, but should return 1 */
  33.  
  34. (Incorrect code gen for C code defined as pascal fn returning structs?)
  35.  
  36. -mbg ch8 and -mbg <number> are not implemented.
  37.  
  38. Result from pascal fns goes to d0 then to final place, instead of being returned
  39. there directly.
  40.  
  41. Enum values >= 2^31 cause out-of-range errors.
  42.  
  43. Complains about mismatches between ptrs to chars and unsigned chars
  44. (Mac read() proto vs cccp.c, for instance).
  45.  
  46. -bigseg is not implemented. (use -model in asm?)
  47.  
  48. #pragma parameter is not implemented. (would be easier and still useful to
  49. remember pragma info and warn if attempting to call a fn for which pragma was
  50. supplied.)
  51.  
  52. -notonce is not implemented in cpp.
  53.  
  54. gC and gCPlus scripts are slow, should use LSR's driver program, but still need to
  55. make -tools option control where to find the driver. (Current version of code is
  56. "gctool.c" and "new gC" in the Miscellaneous folder.)
  57.